import axios from 'axios'
import store from "../store";

const service = axios.create({
    //根据项目状态，自动切换接口地址
    baseURL: import.meta.env.VITE_BASE_API,
    timeout: 5000
})

// 请求拦截器
service.interceptors.request.use(
    (config) => {
        config.headers.icode = 'cd16016a9f8e990cc6e9a8bd09c1c513'
        config.headers.codetype = parseInt(new Date().getTime() / 1000)
        if (store.getters.token) {
            // 如果token存在 注入token
            config.headers.Authorization = `Bearer ${store.getters.token}`
        }
        return config // 必须返回配置
    },
    (error) => {
        return Promise.reject(error)
    }
)


const handleStatus = (res) => {
    // }
    //根据接口返回
    return res.data;
};

/**
 * 响应拦截器
 * 服务端返回数据之后调用
 */
service.interceptors.response.use(response => {
    const {success, message, data} = response.data
    //请求成功
    if (success) {
        return data
    }
    //TODO:业务请求错误
    return Promise.reject(new Error(message))
}, (error) => {
    //处理token超时
    if (error.response?.data?.code === 401) {
        //退出
        store.dispatch('user/logout')
    }
    return Promise.reject(error)
})

export default service